Skip to content

在 Go 语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如 Java,一般来说函数就是方法,方法就是函数

1、方法

func (t *T) add(a, b int) int {
    return a + b
}

其中 T 是自定义类型或者结构体,不能是基础数据类型 int 等

2、函数

func add(a, b int) int {
    return a + b
}

3、两者区别

特性方法(Method)函数(Function)
关联对象与特定类型(如结构体、类型别名)关联。独立于类型,可以在包的任何地方定义。
接收者有接收者,表示方法属于并可访问该类型的实例或指针。没有接收者,仅定义参数列表和返回值。
调用方式通过类型的实例或指针调用。直接使用函数名和参数列表调用。
定义位置必须在一个具体的类型定义内部。可以在包的任何位置定义,不依赖于特定类型。

木川工作室 (微信:mcmc2024)